Modern cryptography (which is generally computer enabled) relies heavily on the idea of one-way functions. This is especially true of public key/private key cryptography. Generally, one-way functions are mathematical functions which are relatively easy to compute but significantly harder to reverse. That is, given a particular input value, it is easy to compute the function of that input value. However, given the output value, it is very hard to compute the input value even though the function itself is known. In this context difficult or hard to compute means that the difference in computational time between computing the forward function (easy) versus the reverse function (hard) is many orders of magnitude. For instance, it might take a second for a computer to compute the forward function but take hundreds of years for the same computer to compute the reverse of the function. Note that even for public key cryptography the one-way functions are not the method of encryption per se but are used generally to support key security and provide authentication. Public key cryptography is based on the concept that there are two different keys. A public key is used to encrypt a message and a private key for decryption of the same encrypted message. It is computationally hard to deduce the private key from the public key. Anyone with the public key can encrypt a message but only the intended recipient with the private key can decrypt it. Hence this process is based on the above indicated one-way functions, where encryption is the easy direction, and decryption (without the private key) is the hard (reverse) direction.
It is well known that various types or classes of algorithms (functions) have different degrees of hardness or difficulty. Generally, so-called exponential functions are considered the most complex or hard to reverse compute. Hence these are considered best for protection of keys and other types of cryptographic secrets. Exponentiation means a value raised to a particular power. Modular exponentiation is also well known as a type of exponentiation performed over a modulus or base. It is known to be particularly useful in computer science including cryptography. Calculating a modular exponentiation refers to calculating the remainder when dividing a positive integer b raised to the eth power (the exponent) by a positive integer m called the modulus. For example, given base b equals 5 and exponent 3 and modulus 13, the solution c is the remainder of 5 to the 3rd power divided by 13, which equals the remainder of 125 divided by 13, which equals 8. Modular exponentiation problems of the type above are considered relatively easy to calculate based on the well known square and multiply algorithm. On the other hand reversing these, also known as computing the discrete logarithm, which means finding the exponent e given the values of b, c and m is considered to be difficult or hard. Hence this is typical example of a well known one-way function. Note that in “strong” cryptography the value of b is often at least 256 binary digits. Hence calculating for discrete logarithms is merely the hard (reverse) complement of modular exponentiation. There are three main groups whose discrete logarithms are of interest to cryptographers, generally. The first is the multiplicative group of prime fields also known as Galois fields. Second is a multiplicative group of finite fields of characteristic 2 which is a type of Galois field. The third is referred to as elliptic curve groups over finite fields. Since most public key algorithms are based on the problem of finding discrete logarithms, this area has been extensively studied. There are two types of “hard” problems in cryptography which are solving the discrete logarithm problem and extracting the eth root of a number.
Elliptic curve cryptographic systems are well known. Elliptic curves are a well known field in mathematics, generally, and have been adapted for public key cryptographic systems as indicated above. Elliptic curves provide a method of constructing elements and rules of combining the produced groups. These groups have properties suitable to construct cryptographic algorithms, but lack the properties that facilitate reversing them; that is, it is hard to break messages thereby encrypted. For instance, elliptic curves are generally not considered smooth on a mathematical sense. In other words, they cannot be easily expressed by a simple algorithm at any one point. Many well known public key algorithms are implemented in elliptic curves over finite fields as indicated above. The elliptic curve approach draws also on the well known mathematical field of graph theory. A graph is a network of lines connecting different points. If two graphs are identical except for the physical location of the points they are called isomorphic. For an extremely large graph, finding whether two graphs are indeed isomorphic is considered a difficult (hard) problem.
Hence in most public key cryptosystems, modular exponentiations are at the heart of the implementation. The exponent (the notion of exponent is extended to all the type of operation even elliptic curve scalar multiplication as mentioned above), is binary decomposed. If the bits (the exponent value being expressed in binary form) are treated from the most to the less significant, a square (power of 2) is calculated each time, and if the bit is one, a multiplication is done with the original message. This is referred to as the square-and-multiply algorithm. Other exponentiation algorithms are less to most significant bit, and square-and-multiply always, using precomputed values to speed up computation.
Note that these types of hard or one-way functions are also suitable for authentication as well as for public key/private key cryptography. In the typical authentication situation one entity transmits a password to the other entity. The receiving entity (host) performs a one-way function on the password. The receiving entity compares the result of the one-way function to one of a list of values that was previously stored. In other words, the host does not need to store a table of all valid passwords; it merely stores the result of the one-way function of the passwords. If a thief breaks into the host and recovers the stored list of the one-way functions of the passwords, this does not give the thief (hacker) any ability to authenticate himself since he still does not know any useful passwords and cannot compute them from the recovered list of one-way functions of the passwords. Public key cryptography is also applied to authentication. This is somewhat more complicated but uses the same concepts. Hence the exponentiation problem is important in the field of cryptography and generally in data security referred to here as “cryptographic processes”.